#ifndef BASE_THREAD_POOL_H_
#define BASE_THREAD_POOL_H_

#include "BaseThreadOp.hpp"
#include <functional>

namespace threadPool{

template<typename Return, typename ... Args>
class BaseThreadPool:
public BaseThreadPoolOp{
    public:
        using task = std::function<Return(Args ...)>; // 这里设置可适配 
        BaseThreadPool(){}

        virtual ~BaseThreadPool(){}

        virtual void addtask(task && t) = 0;
};

template<typename  Return>
class BaseThreadPool<Return>:
public BaseThreadPoolOp{
    public:
        using task = std::function<Return()>; // 这里设置可适配 
        BaseThreadPool(){}

        virtual ~BaseThreadPool(){}

        virtual void addtask(task && t) = 0;
};
}

#endif